﻿/*
  Please write a program that inputs a positive even number (within 7 digits) and decomposes it into the sum of two prime numbers.
 */
#include<stdio.h>

//判断一个数n是不是质数
int isPrimer(int n)
{
	int i;
	for (i = 2; i < n; i++)
	{
		if (n % i == 0)
		{
			return 0;
		}
	}
	return 1;
}

//从n+1开始寻找一个质数
int nextPrimer(int n)
{
	while (1)
	{
		n++;
		if ( isPrimer(n) )
		{
			return n;
		}
	}
}


int main()
{
	int num, i, j, flag;
	printf("请输入一个正偶数: ");
	scanf("%d", &num);
	if (num <= 0 || num % 2 != 0)
	{
		printf("需要输入一个正偶数:!\n");
		return 1;
	}

	//开始分解
	flag = 0;//flag为1则表示分解成功了
	i = 1;
	while (i < num)
	{
		//保证一个是质数
		i = nextPrimer(i);
		//判断另一个是不是质数
		j = num - i;
		if (i > j)
		{
			break;
		}

		if ( isPrimer(j) )
		{
			flag = 1;
			break;
		}
	}
	if (flag)
	{
		printf("%d = %d + %d\n", num, i, j);
	}
	else
		printf("Failed");
    
	return 0;
}
